home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / amigowiec / pccontraaamiga.txt < prev    next >
Text File  |  1997-10-29  |  30KB  |  463 lines

  1.  
  2. IBM PC kontra AMIGA
  3.  
  4. Powszechnie  wiadomo,  ûe  spory  uûytkowników  róûnych rodzajów komputerów
  5. byîy,  sâ  i  bëdâ istniaîy.  Jednak twierdzenia, bâdú porównania sâ czësto
  6. formuîowane  pod  wpîywem  emocji  i  nie  zawsze sâ zgodne z prawdâ (Patrz
  7. niektóre czasopisma IBMowskie, które czasami napiszâ coô o Amidze).
  8.  
  9.   Wynika  to  w  duûej  mierze  z nieznajomoôci tematu, a co za tym idzie z
  10. wyciâgania  wniosków  na  podstawie  mitów.   Poniûszy  artykuî  jest próbâ
  11. rzeczowego  i  uporzâdkowanego  porównania  dwóch  ôwiatów  IBMa  i  AMIGI.
  12. (przyp.  red.)
  13.   Zrealizowanie  w/w  zamierzenia nie jest moûliwe bez uregulowania pewnych
  14. zakresów  tematycznych,  tak  wiëc  pozwoliîem sobie wyodrëbniê nastëpujâce
  15. kryteria  porównania:  - procesor Motorola vs.  Intel; - hardware Amigi vs.
  16. IBMa;  -  software  AmigaOS vs.  MS-DOS & Windows; - programy podzielone na
  17. odpowiednie grupy tematyczne.
  18.   IBM  PC.   To konstrukcja, która powstaîa w chwili, gdy Sinclair zbudowaî
  19. swój ZX 81.  Byî to pierwszy komputer wykorzystujâcy zarówno I8068, jak i w
  20. ogóle  16-bitowâ  technikë.   Ze  wzglëdów ekonomicznych i technologicznych
  21. wykorzystano  8/16  bitowâ  wersjë  Intela  -  8088.   Pierwsze egzemplarze
  22. posiadaîy  prawie  16 KB pamiëci, miaîy dostëp do "pamiëci taômowej", czyli
  23. magnetofonu,  a wyôwietlana grafika byîa ukîadana z czarno - biaîych znaków
  24. semigraficznych.   Mimo  zalet niewiele wiëkszych od tych oferowanych przez
  25. ZXy,  czy  inne  ówczesne  komputery  osobiste, komputer ten przyjâî sië na
  26. rynku  jako  swoisty  standard.   Wszystko  z  nim  zwiâzane  byîo (i jest)
  27. przereklamowane, podejôcie uformowane przez mity i bajki wyssane z palca na
  28. niewiarygodnâ  skalë  (biedny palec).  Obie ówczesne konstrukcje - IBM PC i
  29. ZX 81, oprócz czasu wydania, majâ bardzo wiele cech wspólnych, poczâwszy od
  30. budowy procesora na architekturze komputera skoïczywszy.
  31.   Amiga.   Jej  oszaîamiajâca  kariera  zaczëîa  sië  w roku 1985, kiedy to
  32. Commodore  pokazaî  nowy  komputer  -  A1000.   Posiadaî  on  bardzo szybki
  33. 32/16-bitowy  procesor  MC  68000  (w tamtych czasach 68000 i jego kuzyn MC
  34. 68010   byîy  stosowane  jedynie  w  najszybszych  stacjach  graficznych  i
  35. roboczych:   Sun,  Apollo, itp.0, oszaîamiajâcâ grafikë aû w 4096 kolorach,
  36. pierwszy    produkowany    seryjnie   ukîad   generujâcy   dúwiëk   stereo,
  37. wielozadaniowy  system  operacyjny,  itd.  W ciâgu kolejnych lat Amiga byîa
  38. jedynym  komputerem  wieloprocesorowym, spoôród komputerów 16 i 32-bitowych
  39. jako   jedyna   posiada   system  sprite'ów.   Amiga  znacznie  przerastaîa
  40. jakikolwiek  dostëpne systemy komputerowe, jej moûliwoôci byîy porównywalne
  41. jedynie  z  lepszymi  stacjami roboczymi.  A jednak nie tylko nie staîa sië
  42. popularna - zostaîa zepchniëta do kategorii superkomputerów domowych.  Brak
  43. marketingu  i  jakiegokolwiek  poparcia ze strony Commodore tylko pogarszaî
  44. sytuacjë,  hasîo "multimedia" byîo utoûsamiane z grami przez osoby bardziej
  45. "ograniczone",  natomiast  osoby  "ôwiatîe" wciâû czekaîy na jego nadejôcie
  46. zupeînie ignorujâc istnienie multimedialnego komputera Amiga.
  47.   Po   tym  drobnym  wstëpie  rozpoczynam  test  porównawczy  dwóch  rodzin
  48. komputerów:   doskonale  nam  znanych  Amig  firmy  Commodore oraz IBM PC i
  49. kompatybilnych  produkowanych  przez  wiele  firm.  W ciâgu cyklu porównamy
  50. kolejno:   -  procesory  komputerów,  rodziny  Intel 80x86 oraz Motorola MC
  51. 680x0; - architekturë obu komputerów; - system operacyjny; - oprogramowanie
  52. niezaleûnych producentów.
  53.   W  przeciwieïstwie  do  doôê  popularnych  testów  typu  "komputer X jest
  54. lepszy,  bo  jest  lepszy"  kaûdâ  opinië  i  uwagë  postaram sië dokîadnie
  55. wyjaôniê  i  poprzeê.  W kaûdej czëôci testu podam gîównie fakty zwiâzane z
  56. tematem, bez nadmiernego interpretowania.  Dzisiaj porównanie procesorów, a
  57. w kolejnych wydaniach nastëpne punkty programu.
  58.  
  59. Procesory Intel i Motorola
  60.   Obie   firmy   sâ   najwaûniejszymi   potentatami  rynków  komputerowych.
  61. Produkujâ  one  nie  tylko  procesory,  lecz caîâ gamë ukîadów logicznych i
  62. analogowych.   Firma Motorola przoduje w opracowaniach sieciowych, urzâdzeï
  63. radiowych  i  komputerów.   Intel  produkuje  wysokiej  klasy  modemy  oraz
  64. popularne ukîady elektroniczne.  MC 680x0
  65.   Firma  Motorola ma bardzo ciekawâ strategië rozwoju procesorów.  Co kilka
  66. lat   w   firmie  tej  powstaje  nowa  rodzina  procesorów,  niezaleûna  od
  67. pozostaîych    opracowaï,    charakteryzujâca    sië    praktycznie    100%
  68. kompatybilnoôciâ    wszystkich   ukîadów   rodziny.    Pomiëdzy   rodzinami
  69. przenoszone   sâ   jedynie  gîówne  opracowania  technologiczne,  szczegóîy
  70. konstrukcyjne jak zestaw instrukcji i rejestrów, formaty danych i interface
  71. z  urzâdzeniami  zewnëtrznymi  nie  sâ  dziedziczone  z rodziny starszej na
  72. nowszâ.   Szczególnie  znane  sâ  rodziny:   -  MC 68xxx - wykorzystywane w
  73. Amigach,  Macach,  Atari  ST / TT / Falcon, Sun, itd.; - MC 88xxx - rodzina
  74. RISC; - DSP 56xxx - rodzina procesorów sygnaîów cyfrowych, wykorzystywanych
  75. np.   w  komputerze Atari Falcon; - PowerPC - najnowsza rodzina procesorów,
  76. majâca  poîâczyê  moûliwoôci  porównywanych  procesorów MC 68xxx oraz Intel
  77. 80x86.
  78.   Szczególnie  wysokâ  pozycjë ma rodzina MC 68xxx wykorzystywana w naszych
  79. poczciwych Amigach, îâczy ona gîównie zalety pozostaîych rodzin.  Najnowsze
  80. procesory  tej  rodziny  posiadajâ  symetrycznâ  architekturë superskalarnâ
  81. zapoûyczonâ  od MC 88xxx, bardzo szerokâ listë instrukcji charakterystycznâ
  82. dla procesorów CISC (ang.  Complex Instruction Set Computer - zîoûona lista
  83. rozkazów  w  przeciwieïstwie  do  RISCów) oraz rozwiniëty system rejestrów,
  84. charakterystyczny  raczej  dla  nowoczesnych superminikomputerów niû innych
  85. CISCów.
  86.   Rodzina  ta  zaczëîa  sië  od  procesora  MC 68000, który byî konstrukcjâ
  87. zarówno 16, jak i 32-bitowâ.  Programista uûywaî wszystkich cech komputerów
  88. 32-bitowych,  natomiast  projektant  systemów  komputerowych  - 16-bitowych
  89. ukîadów  zewnëtrznych.   Zestaw  rejestrów z tego procesora jest identyczny
  90. dla jego nastëpców, róûniâ sië one jedynie rozszerzonym zestawem instrukcji
  91. i rejestrami systemowymi.
  92.  
  93. Rejestry
  94.   W   podstawowym   jëzyku   kaûdego  -  asemblerze  uûywane  sâ  specjalne
  95. "pojemniki"  na  dane.  Ich iloôê oraz îatwoôê uûycia w decydujâcym stopniu
  96. tworzâ  jakoôê  i  prëdkoôê komputera.  Wszystkie rejestry "motorolki" majâ
  97. dîugoôê  32  bitów  i  sâ  podzielone  na  rejestry danych i adresowych.  W
  98. przeciwieïstwie do procesora Intel, rejestry te majâ jedynie róûne numery i
  99. nie  majâ  specjalnych  cech  w  obrëbie rejestrów jednej grupy (danych lub
  100. adresowych).   Oznacza  to,  ûe  np.   operacjë  dodawania moûemy wykonaê z
  101. pomocâ dowolnych rejestrów, z dowolnâ precyzjâ:  - bajtu (8 bitów); - sîowa
  102. (16 bitów); - dîugiego sîowa (32 bity).
  103.   Kaûdy  rejestr  moûe  zawieraê  dane podczas dowolnej operacji, dowolny z
  104. nich  moûe  uczestniczyê  w  tworzeniu  skomplikowanych trybów adresowania.
  105. Istnieje  bardzo  szybka instrukcja zapamiëtujâca wybrany blok rejestrów na
  106. stosie.
  107.  
  108. Instrukcje
  109.   Kaûdy   procesor   potrafi  wykonaê  zestaw  czynnoôci  okreôlanych  jako
  110. instrukcje.   Instrukcja  jest  odpowiednio  zbudowanâ liczbâ, rozpoznawanâ
  111. przez  procesor.  Procesory MC 68xxx dysponujâ kilkoma tysiâcami instrukcji
  112. tworzonymi   z   ponad   stu  podstawowych.   Tak  "zupeînie"  podstawowych
  113. instrukcji   jest   nieco  ponad  40,  dodajâc  róûne  tryby  pracy,  tryby
  114. adresowania  i  rozmiary otrzymujemy instrukcje pochodne.  Kaûda instrukcja
  115. pracuje  z  wiëkszoôciâ  dostëpnych  trybów  adresowania,  czyli  sposobami
  116. otrzymania   danych  "substratów"  tworzâcych  podczas  operacji  danâ/dane
  117. "produkty".   Zupeînie oczywistâ cechâ jest uûywanie dowolnych rejestrów do
  118. przechowywania danych, jak i konstruowania trybów adresowania.
  119.   Zestaw  instrukcji procesora MC 68000 jest kodowany na minimum 16 bitach,
  120. czyli  w  pamiëci  1  MB  mieôci  sië  nieco  ponad póî miliona instrukcji.
  121. Praktycznie  kaûda  instrukcja  operuje  na  danych  8,  16  i 32-bitowych,
  122. pojedyncze  pracujâ  na  danych  ustalonej  dîugoôci.   Formaty  instrukcji
  123. zostaîy  zaplanowane  ze  spokojnym  namysîem,  w przeciwieïstwie do Intela
  124. zapewniajâ praktycznie dowolnie rozszerzenia i nowe tryby adresowania.
  125.   Procesor   MC   68000   zawiera  bardzo  wiele  instrukcji  nie  majâcych
  126. jakiegokolwiek    odpowiednika   Intelu.    Instrukcji   warunkowych   jest
  127. kilkadziesiât  -  Intel  ma  ich  kilkanaôcie.   Motorolka posiada unikalne
  128. instrukcje  operujâce  na  pojedynczych  bitach,  pozwalajâc na testowanie,
  129. negacjë,   ustawianie  i  gaszenie  dowolnie  wybranego  bitu,  bez  zmiany
  130. pozostaîych.  Mechanizm ten jest jeszcze bardziej uûyteczny po wprowadzeniu
  131. pól  bitowych  w  procesorze  MC  68020.   na  tak  "zaawansowane" operacje
  132. uûytkownicy  blaszaków ze "Szwindel inside" musieli czekaê aû na I 80386 (8
  133. lat),  w  praktyce  bez  moûliwoôci  ich  wykorzystania (z uwagi na znikomâ
  134. kompatybilnoôê tego procesora ze starszymi procesorami).
  135.  
  136. Tryb adresowania
  137.   Podczas  dowolnych  obliczeï  operujemy  na  danych ustalonego typu.  Dla
  138. procesora  MC 680x0 praktycznie wszystkie instrukcje operujâ na tych samych
  139. danych:   8,16  i  32  bity.  Aby w trakcie obliczeï uûyê liczby, trzeba jâ
  140. najpierw  "wczytaê"  do procesora uûywajâc odpowiedniego trybu adresowania.
  141. Jest to sposób, w jaki wskaûemy liczbë, np.:  ADDI.L#A,D0 ;Dodaj liczbë "A"
  142. do liczby w rejestrze D0.
  143.       ;Rejestr D0 zawiera
  144.       ;liczbë o 32-bitowej dîugoôci, jego
  145.       ;zawartoôê jest zmieniana na sumë liczby
  146.       ;"A"  i  poprzedniej  zawartoôci  rejestru.  MOVE.L D3,(A7) ;Liczba z
  147. rejestru D3 jest przesîana do
  148.       ;komórki o adresie zawartym w rejestrze A7.
  149.   Instrukcje  Motoroli  majâ  doôê  specyficznâ cechë - kaûda instrukcja ma
  150. kilka  odmian  swojej  podstawowej formy, zaleûnej od dostëpnych jej trybów
  151. adresowania,  np.:   ADDx.s  <a>,<b>  ADD - dodawanie podstawowe - dostëpne
  152. prawie   wszystkie   tryby   adresowania;   ADDA  -  dodawanie  z  wynikiem
  153. pozostawionym  w  rejestrze  adresowym;  ADDQ  -  dodawanie  z ograniczonym
  154. argumentem <a>; ADDI - dodawanie z danâ natychmiastowâ jako argument <a>.
  155.   Jeszcze raz przypominam, rozmiar instrukcji "s" (.B, .W, .L) jest dowolny
  156. dla  wszystkich  trybów  adresowania.  Grupa instrukcji wyznaczonych literâ
  157. "x",  róûni  sië  przewaûnie  pierwszym  argumentem - instrukcja podstawowa
  158. (ADD)   operuje  na  uniwersalnych  danych  <a>  i  <b>,  jednak  ogranicza
  159. stosowanie  niektórych  trybów  adresowania  <b> przy specyficznych trybach
  160. <a>.  Instrukcja zmienia niektóre wîaôciwoôci, stâd wiëkszoôê instrukcji ma
  161. wîaônie taki format.
  162.   Tryby  adresowania stosowane w procesorze MC 68000 sâ wîaôciwe raczej dla
  163. minikomputerów  niû  procesorów  jednoukîadowych.   Oprócz zîoûonych trybów
  164. wykorzystujâcych   wielokrotne  rejestry  indeksowe,  majâ  unikalny  tryb:
  165. Instrukcja <coô>, (An)+ Instrukcja <coô>,-(An)
  166.   Przy korzystaniu z tego trybu, dana jest wskazywana przez dowolny rejestr
  167. adresowy  An,  a  zawartoôê tego rejestru jest zwiëkszana tak, by wskazywaê
  168. nastëpnâ  danâ.   Druga  instrukcja  najpierw ustawia An na kolejnej danej,
  169. dopiero  potem  jest  ona  adresowana.   Zastosowanie tych trybów ma szereg
  170. zalet  nad  procesorem Intel:  - w bardzo prosty sposób moûna stworzyê ciâg
  171. instrukcji  obrabiajâcych  dane  dowolnej  precyzji  (np.   1024-bitowe); -
  172. wiëksze struktury danych jak np.  tablice czy îaïcuchy sâ bardzo efektywnie
  173. wykorzystywane;  -  wykorzystanie dowolnej instrukcji i trybów -(An), (An)+
  174. odpowiada dwóm instrukcjom Intela potrzebnym do obróbki danych na stosie.
  175.   Taka  implementacja  mechanizmu  stosów  daje  nam oprócz prëdkoôci iloôê
  176. stosów  równâ  iloôci  rejestrów  adresowych  -  9 dla MC 68000 i 10 dla MC
  177. 68020.   Dla  porównania:   Intel  8086  z  XT  ma tylko jeden stos, nowsze
  178. Inteliny sâ równie "zaawansowane" - aû dwa stosy!!!
  179.  
  180. Pamiëê a procesor
  181.   Do  ogromnej  przewagi  Motoroli nad Intelem przyczyniîy sië dwa genialne
  182. pomysîy.    Wprowadzenie  32-bitowych  rejestrów  i  przestrzeï  adresowana
  183. generowana  bezpoôrednio  na  podstawie  32  bitów.  W praktyce jedna cecha
  184. automatycznie wysunëîa drugâ.
  185.   Kaûdy   procesor   rodziny   MC  68000  generuje  peîny  32-bitowy  adres
  186. bezpoôrednio  generowany  w  naszym  programie  i  kaûdej  jego instrukcji,
  187. odwzorowywany na liniowâ przestrzeï 4 GB.  Nie ma idiotycznych podziaîów na
  188. segmenty  z Intela, w dowolnym momencie mamy dostëp do dowolnej komórki.  W
  189. generowaniu  adresów  bardzo  pomaga zestaw uniwersalnych (w obrëbie grupy)
  190. rejestrów  adresowych  A0  - A7, które mogâ bezpoôrednio wskazywaê komórkë,
  191. jak i braê udziaî w tworzeniu odpowiedniego trybu adresowania.
  192.   Podziaî  rejestrów  na  dwie  grupy ma jeszcze jednâ zaletë - operacje na
  193. danych   mogâ   byê  w  peîni  przeplatane  z  operacjami  przygotowujâcymi
  194. odpowiedni   adres.   Jest  to  zapewnione  przez  odpowiednie  traktowanie
  195. znaczników.  Niestety sâ równieû drobne wady - tworzenie 32-bitowego adresu
  196. wydîuûa  przestrzeï pamiëci przydzielanâ na instrukcjë, a rejestry adresowe
  197. nie  mogâ  byê  dzielone  na  czëôci  8-bitowe.   Cóû,  nikt i nic nie jest
  198. doskonaîe.
  199.  
  200. Operowanie na danych
  201.   O  ogromnej  elastycznoôci Motoroli jesteô juû przekonany.  Dodam jeszcze
  202. sîowo o danych wielokrotnej precyzji.  Mimo iû zakres 32 bitów jest w wielu
  203. wypadkach  wystarczajâcy,  podczas  wielu  obliczeï  korzysta sië z liczb o
  204. znacznie wyûszej precyzji, np.  128 bitów.  Jeszcze czëôciej korzysta sië z
  205. liczb  rzeczywistych,  realizowanych gîównie w formacie zmiennoprzecinkowym
  206. 80  bitów.  Staîoprzecinkowe operacje pozwalajâ na bezpoôrednie korzystanie
  207. z trybów predekrement i postinkrement.  Pozwalajâ one na tworzenie operacji
  208. (np.  makroinstrukcji) operujâcych na danych dowolnej precyzji.
  209.   W  MC  68000  nie byîo 64-bitowych operacji dzielenia i mnoûenia, jest to
  210. jedyna  cecha odtrâcajâca ten procesor od w peîni 32-bitowych maszynek.  Na
  211. szczëôcie  nowszy  procesor  MC 68020 posiada operacje 64-bitowe mnoûenia i
  212. dzielenia,  ôciôle  -  dzielona jest 64-bitowa liczba przez 32-bitowe dajâc
  213. wynik  64-bitowy.   Dodane  sâ równieû operacje uproszczone, przydatne przy
  214. szybkich  obliczeniach  oraz  -  realizacji obliczeï na danych wielokrotnej
  215. precyzji.
  216.   Procesory    te    nie    potrafiâ    bezpoôrednio   liczyê   na   danych
  217. zmiennoprzecinkowych,  w  tym  celu  Motorola  wprowadziîa  bardzo  wydajne
  218. koprocesory:   MC  68881  i  jego  nowszego  kuzyna  MC  68882.  W nowszych
  219. procesorach MC 68040/60 sâ one wbudowane we wnëtrze procesora dajâc jeszcze
  220. wiëkszâ wydajnoôê niû para MC 68030 i MC 68882.
  221.  
  222. Koprocesory
  223.   Firma  Motorola  zupeînie  zmieniîa dotychczasowe definicje koprocesorów.
  224. Jest  on  dowolnym rozszerzeniem sprzëtowym komunikujâcych sië z procesorem
  225. za  pomocâ  specjalizowanego  protokoîu  wymiany  ûâdaï  i  potwierdzeï.  W
  226. przeciwieïstwie  do Intela jest to protokóî programowy, co znacznie podnosi
  227. jego   funkcjonalnoôê   i  daje  moûliwoôê  podîâczenia  dowolnych  zasobów
  228. sprzëtowych.    Procesor   rozpoznaje   staîy  zestaw  rejestrów  w  kaûdym
  229. procesorze,  zostawiajâc w nich ustalone informacje potwierdzajâce gotowoôê
  230. od  wykonania  ûâdania, potwierdzenie wykonania poprzedniej informacji itp.
  231. Informacje  te  majâ  dosyê  niski  poziom, zapewniajâc budowanie dowolnych
  232. protokoîów wysokiego poziomu.  Jednoczeônie komunikacja z koprocesorem jest
  233. wykonywana  przez  odpowiednie wbudowane mechanizmy, co odciâûa programistë
  234. od ukîadania takich protokoîów.
  235.   Procesory   MC   68000   mogâ   wspóîpracowaê   z  oômioma  koprocesorami
  236. jednoczeônie,   przynajmniej  tyle  obsîuguje  mikrokod  odpowiedzialny  za
  237. generacjë  protokoîów.   Koprocesory  mogâ  mieê  dowolne  zasoby sprzëtowe
  238. (rejestry,  wewnëtrznâ pamiëê) oraz operowaê na dowolnych danych.  W chwili
  239. obecnej Motorola produkuje koprocesory matematyczne, zarzâdzania pamiëciâ i
  240. sieciâ.  Jednoczeônie istniejâ opracowania niezaleûnych producentów.
  241.   Nowsze  procesory majâ wbudowane jednostki zmiennoprzecinkowe (MC 68040 i
  242. nowsze) oraz ukîady zarzâdzania pamiëciâ MMU (MC 68030 i nowsze).  Istnieje
  243. caîa  rodzina  specjalizowanych  kontrolerów,  z  wbudowanymi koprocesorami
  244. obsîugi urzâdzeï wejôcia/wyjôcia np.  sieci.
  245.  
  246. Intel 80x86
  247.   Firma  Intel  ma bardzo konserwatywne podejôcie do swoich wyrobów.  Kaûdy
  248. procesor  jest  nastëpcâ  jakiegoô poprzednika, dziedziczy on jego cechy, w
  249. tym  wady.   Z  takiej  "ciâgîoôci" produkcji doôê trudno rozróûniê rodziny
  250. procesorów, do rodziny I80x86 moûna nawet zaliczyê ukîad Z 80 ze Spectruma,
  251. mimo iû jego producentem jest firma Zilog.
  252.   Ukîad  I8086  byî  pierwszym  procesorem  16-bitowym, mimo to wspóîczesne
  253. procesory  16  i  32-bitowe  znacznie  odbiegajâ  od  jego architektury, sâ
  254. zaledwie   podobne.   Uproszczony  ukîad  8088  byî  podstawowym  elementem
  255. pierwszego "PC" jakim byî IBM XT.  W przeciwieïstwie do ukîadów Motoroli, w
  256. rodzinie  Intel  "zalëgîo" sië mnóstwo niezgodnoôci i niekonsekwencji, stâd
  257. powiedzenie "procesor X i nowsze" nie ma tak ogólnego znaczenia.
  258.   Import   niezbyt   wygodnych   cech  procesorów  8-bitowych  zdecydowanie
  259. pogorszyî  funkcjonalnoôê  procesorów  I80x86, zablokowaî moûliwoôê îatwych
  260. rozszerzeï i ulepszeï.
  261.  
  262. Rejestry
  263.   Ukîad  Intel  zawiera  doôê  niezgrabnie  uformowany  "zlepek"  rejestrów
  264. róûnego  przeznaczenia.   Zaledwie  rejestr  AX  jest  pseudo  uniwersalny,
  265. pozostaîe   mogâ   byê   wykorzystywane   jedynie   w   bardzo  generalnych
  266. instrukcjach.   Wykorzystanie  odpowiedniego  rejestru  zawsze  wiâûe sië z
  267. ograniczeniami  dostëpnych  trybów  adresowania,  sâ one równieû zaleûne od
  268. rozmiaru  danej.   Kaûdy rejestr dzieli sië na dwie 8-bitowe czëôci.  Jeôli
  269. Drogi  Czytelniku  miaîeô  stycznoôê  z zacnymi komputerami ZX Spectrum, to
  270. zauwaûysz  uderzajâce podobieïstwo procesorów Z 80 i I 8086 (pod niektórymi
  271. wzglëdami  Z  80  jest  nawet lepszy, np.:  posiadaî dwie niezaleûne palety
  272. rejestrów).
  273.   Oznacza  to,  ûe  podczas  pisania programu naleûy ciâgle pamiëtaê, który
  274. rejestr  moûe  byê uûyty podczas obliczeï, jakie tryby adresowania budujemy
  275. danym  rejestrem  itd.  Bardzo czësto brakuje rejestrów do wykonania danego
  276. zadania,  stâd konieczna jest masa instrukcji pomocniczych, przekîadajâcych
  277. rejestry  np.   na  stos.   Podczas  obliczeï  bardziej  koncentrujemy  sië
  278. ûonglerkâ rejestrami niû faktycznym algorytmem.  Majabra.
  279.   Z  "ogromnej" iloôci 13 rejestrów 4 odpadajâ na zarzâdzanie bankami, gdyû
  280. przestrzeï adresowa w przeciwieïstwie do Motoroli jest zarzâdzana bankami o
  281. dîugoôci 64KB.  Wynika to z dziedziczenia cech procesorów 8-bitowych, które
  282. przewaûnie  nie  potrafiâ  obsîugiwaê  pamiëci  wiëkszej  niû 64KB w sposób
  283. liniowy.   Do  bezpoôredniego wykorzystania nie nadajâ sië równieû rejestry
  284. IP  (odpowiednik  PC)  oraz  SP,  który jest wskaúnikiem stosu.  W Motoroli
  285. wskaúnik  stosu  byî  zwykîym  rejestrem  adresowym,  który  w  wyjâtkowych
  286. sytuacjach   byî   traktowany   odmiennie.   W  Intelu  operacje  mogâ  byê
  287. wykorzystywane  tylko na jednym stosie, w komputerach XT nie ma nawet stosu
  288. systemowego,  ze  wzglëdu  na  kompatybilnoôê  nie  jest on szeroko uûywany
  289. równieû w nowszych procesorach!
  290.   W praktyce jesteômy ograniczeni do 4 rejestrów danych i dwóch adresowych,
  291. przy czym dajâ one znacznie mniejsze moûliwoôci niû odpowiedniki Motoroli.
  292.  
  293. Instrukcje
  294.   Instrukcje  Intela  sâ  bardzo  nieuniwersalne, wiëkszoôê z nich moûe byê
  295. uûywana  jedynie  w  odniesieniu do jednego rejestru (AX).  Bardzo czësto w
  296. nazwie  instrukcji  zawarta  jest  informacja  o  rejestrach,  stâd  trzeba
  297. pamiëtaê  listë  bezsensownych mnemoników.  Rozmiar danej na jakiej operuje
  298. instrukcja zawarty jest w nazwie rejestru, a nie instrukcji, co prowadzi do
  299. czëstych bîëdów.
  300.   Wreszcie najwaûniejsza cecha Intela - ukîady I 8086/88/286 sâ 16-bitowe i
  301. nie  potrafiâ  liczyê  na danych 32-bitowych nawet w ograniczonym zakresie.
  302. Jest  to  ogromna  wada  tego  procesora, gdyû program napisany na procesor
  303. starszy,  bëdzie  niewiele  szybszy  na  procesorze  nowszym.   W  Motoroli
  304. procesor  nowszy automatycznie korzysta z peînej 32-bitowoôci, przynajmniej
  305. podwajajâc prëdkoôê.
  306.   Piszâc  program  na  dowolny  procesor  Motoroli zawsze korzystam z liczb
  307. 32-bitowych, gdyû procesory te majâ przynajmniej (MC 68000-12) architekturë
  308. 16/32  bity.   Napisanie  programu 32-bitowego na Intelu spowoduje "wielkie
  309. bum"  na  procesorach starszych od I 80386.  Stâd prawie wszystkie programy
  310. korzystajâ  jedynie  z  antycznych  16  i  8  bitów  znakomicie pogarszajâc
  311. parametry  nawet  rzekomo  wydajnych  I 80486.  Wiëkszoôê testów i porównaï
  312. prëdkoôci  zarówno  wewnâtrz  rodziny  Intel, jak i z innymi rodzinami jest
  313. bardzo  przekîamana  ze  wzglëdu  na wymagania kompatybilnoôci, stâd czëste
  314. uûywanie najwyûej 16-bitowych operacji (przynajmniej w komputerach IBM PC).
  315.   Co  ciekawsze, tendencja 16 bitów dotyczy nie tylko programów uûytkowych,
  316. ale  równieû  systemów  operacyjnych  i  jëzyków  programowania.  Wiëkszoôê
  317. kompilatorów  zamyka  sië  w 16-bitowym zakresie XT sprzed ponad dziesiëciu
  318. lat!
  319.   Kolejny  paradoks  w  rodzinie  Intel  dotyczy  niezgodnoôci  procesora I
  320. 8086/88  z  kolejnymi  procesorami.   Nowsze  modele  muszâ  przechodziê  w
  321. specjalny  tryb  emulacji  pradziada,  w którym nie mogâ korzystaê z nowych
  322. rozszerzeï.   Z  kolei  w  trybie  rozszerzonym nie moûna wykonywaê starych
  323. programów.  Oznacza to dalsze problemy z kompatybilnoôciâ oraz ograniczenia
  324. w uûyciu nowych rozszerzeï procesorów.
  325.   Dopiero  w procesorach I 80386 oraz I 80486 dodano póîôrodki polepszajâce
  326. të  sytuacjë.   Wymagajâ  one  jednak  wspóîpracy z systemami operacyjnymi,
  327. której te jeszcze nie zapewniajâ.
  328.   Dalsze   kîopoty   w   uûyciu   instrukcji   dotyczâ   tzw.    "rejestrów
  329. uniwersalnych",  które  w  praktyce  sîuûâ  jedynie  do  okreôlonych celów.
  330. Uûycie   wielu  z  instrukcji  wymaga  domyôlnego  ustawienia  odpowiednich
  331. wartoôci w rejestrach nie biorâcych udziaîu w operacji, przykîadowo rejestr
  332. CX  musi zawieraê iloôê powtórzeï pëtli w instrukcjach LOOP, iloôê bajtów w
  333. instrukcjach  przesuwu  itd.  Instrukcje mnoûenia, dzielenia, logiczne itd.
  334. mogâ byê wykonane jedynie z uûyciem rejestru AX.
  335.   Wreszcie  "cudaczna"  cecha  procesora  Intel  dotyczy  czytania danych z
  336. pamiëci   i  generacji  adresów.   Ze  wzglëdu  na  bagaû  "doôwiadczeï"  z
  337. procesorów 8 i 4 bitowych, procesor ten czyta dane przestawiajâc fragmenty.
  338. Dana w pamiëci zapisana jako:  Bajt1 Bajt2 Bajt3 Bajt4
  339.    1 2 3 4 jest interpretowana jako $3412.
  340.   Instrukcje zawierajâce adres zawierajâ doôê ômieszny podziaî na krótkie i
  341. dîugie  tryby, przy czym krótkie przesuniëcie ma wartoôê 8-bitowâ, a dîugie
  342. "aû" 16-to.
  343.  
  344. Tryby adresowania
  345.   Procesory  MC  68000/10/12  dysponujâ  14  trybami  adresowania.   Sâ  to
  346. podstawowe  schematy, wedle których pobiera sië odpowiedniâ danâ z pamiëci.
  347. Ukîad  Intel  potrafi  operowaê jedynie 8 trybami, przy czym w porównaniu z
  348. Motorolâ  dajâ  one znacznie mniejsze moûliwoôci niû odpowiedniki Motoroli.
  349. Jednâ  z  podstawowych cech róûniâcych Intela i Motorolë sâ róûne koncepcje
  350. procesorów.    Maîa  iloôê  rejestrów  Intela  jest  dodatkowo  przeciâûana
  351. prymitywnymi   instrukcjami,   nie   pozwalajâ   one   na   operacje   typu
  352. pamiëê-pamiëê,  wymagajâc  uûycia  i  tak  niewielu  rejestrów.  W ukîadach
  353. Motoroli nie tylko zarzâdzamy bardzo uniwersalnymi rejestrami (17 rejestrów
  354. 32-bitowych  w  porównaniu  z  czterema 16-bitowymi Intela), lecz dodatkowo
  355. korzystamy   z   bardzo   rozbudowanych   trybów   adresowania  najczëôciej
  356. pozwalajâcych na umieszczenie obu argumentów w pamiëci.
  357.   Niektóre  publikacje  (gîównie  firmy  Intel) porównujâ tryby adresowania
  358. Motoroli  i  Intela,  nadmiernie  rozbudowujâc  te ostatnie.  Na przykîad z
  359. ogólnego  trybu  adresowania  rejestrem  indeksowym tworzâ "dziwolâgi" typu
  360. "adresowanie  indeksowe  rejestrem  X,  adresowanie  indeksowe  rejestrem Y
  361. itd...." Stâd czasami stwierdzajâ 23-28 trybów Intela wobec podstawowych 14
  362. Motoroli.   Gdyby  identycznie  "rozciâgnëli"  tryby  Motoroli  wyszîoby im
  363. kilkaset wariantów wobec dwudziestu kilku Intela...
  364.   Tryby  adresowania  ulegîy  rozszerzeniom  zarówno  w ukîadach MC 68020 i
  365. nowszych jak i I 80386.  Jak zwykle na korzyôê tego pierwszego.
  366.  
  367. Pamiëê a procesor
  368.   Jak  juû wczeôniej pokazaîem, ukîad Motorola traktuje przestrzeï adresowâ
  369. w  peîni  liniowo.   Dowolna  komórka  pamiëci  jest  osiâgalna  w dowolnym
  370. momencie  za  pomocâ  bezpoôrednio  podawanego  32-bitowego  adresu.  Ukîad
  371. Intela   posiada  koszmarny  system  segmentów.   Odziedziczenie  rozwiâzaï
  372. procesorów  8-bitowych  zadecydowaîo  o  wykorzystaniu  jedynie  64KB bloku
  373. pamiëci,  gdyû  wszystkie  rejestry  tworzâce  adres  sâ jedynie 16 bitowe.
  374. Procesor dysponuje 4 blokami po 64KB kaûdy:  - segment danych DS; - segment
  375. stosu SS; - segment programu CS; - segment dodatkowy ES.
  376.   Aby  choê  trochë  odróûniê  komputery  ZX  Spectrum i IBM PC firma Intel
  377. wprowadziîa  specjalne  rejestry  segmentowe.   Sâ  one w odpowiedni sposób
  378. dodawane  do  adresu generowanego podczas wykonywania instrukcji, wskazujâc
  379. upatrzonâ  komórkë  w  64KB  segmentach.   Zamiast  64KB  otrzymujemy jakûe
  380. przestronnâ przestrzeï 1MB (Motorola ma przestrzeï liniowâ 4GB).
  381.   Stâd przed dostëpem do jakichkolwiek danych musimy zîoûyê odpowiedni tryb
  382. adresowania,  uprzednio  îadujâc  odpowiedni rejestr segmentowy.  Aû trudno
  383. uwierzyê,  ûe  programy  na  Intela robiâ cokolwiek innego (np.  realizacja
  384. planowanego    algorytmu)    oprócz    ciâgîego    przekîadania   rejestrów
  385. "uniwersalnych" oraz korygowania rejestrów segmentowych.
  386.   W  procesorach  I  80286 i nowszych dodano tryb systemowy oraz zwiâzany z
  387. nim  ukîad zarzâdzania pamiëciâ.  Polepsza on nieco beznadziejnâ wspóîpracë
  388. z  pamiëciâ  tego  procesora,  chociaû  takie  sztuczne  zîoûenie procesora
  389. majâcego  swoje  úródîa w konstrukcjach 4-bitowych i koncepcji nowoczesnego
  390. zarzâdzania  pamiëciâ, bardzo skomplikowaîa jego pracë i budowë, skutecznie
  391. utrudniajâc  tworzenie  systemów  operacyjnych,  jak i zwykîych programów z
  392. uûyciem jëzyków niûszego poziomu.
  393.  
  394. Operowanie na danych
  395.   Procesor  I  8086  operuje jedynie na bajtach i sîowach.  Jego nastëpca I
  396. 80386  ulegî  rozszerzeniu  do  32  bitów,  jednak  jest to raczej sztuczne
  397. rozwiâzanie.   Do oômiu najwaûniejszych rejestrów dodano dodatkowe 32 bity,
  398. jednoczeônie  wprowadzajâc  nowy  typ  danych.   Procesory I 80386/486 mogâ
  399. dodatkowo obsîugiwaê pojedyncze bity grupowane w pola bitowe (takâ "sztukë"
  400. moûe wykonaê nawet praszczur MC 68000, rozszerzajâc moûliwoôci w MC 68020).
  401.   Wprawdzie  moûna  obsîugiwaê  dane  wielokrotnej  precyzji, jednak trzeba
  402. wspieraê   sië   ogromnâ  iloôciâ  instrukcji  pomocniczych,  które  tworzâ
  403. namiastkë  zîoûonych  trybów  adresowania  Motoroli (gîównie -(An), (An)+).
  404. Procesor Intel ma zestaw instrukcji specjalnych, które potrafiâ operowaê na
  405. blokach,  uûywajâc  zestawu  rejestrów  definiujâcych  jego  parametry.  Do
  406. wprowadzenia   procesora   MC  68010/12  Motorola  nie  potrafiîa  na  tyle
  407. efektywnie  obsîugiwaê  dîuûszych  îaïcuchów  i  list.   Jednak  nowoczesne
  408. procesory tej rodziny (68010 i nowsze) posiadajâ pamiëê cache automatycznie
  409. rozpoznajâcâ pëtle operujâce na blokach, przetwarzajâc dane efektywniej niû
  410. Intel.
  411.  
  412. Koprocesory
  413.   Intel  doôê  szybko  zauwaûyî  marnâ  wydajnoôê  swojego  procesora, stâd
  414. opracowanie  koprocesora  I  8087  byîo  szybsze  niû koprocesora MC 68881.
  415. Podczas  opracowywania  interface'u miëdzy procesorem a ukîadem I 8087, nie
  416. chciano  stworzyê  uniwersalnego  sposobu  wymiany  informacji  z dowolnymi
  417. zasobami sprzëtowymi jak w wypadku Motoroli, dâûono raczej do najprostszego
  418. technologicznie  poîâczenia.   Koprocesor  Intela  musi  byê w bezpoôrednim
  419. sâsiedztwie  procesora,  gdyû  korzysta  ze  specjalnych  linii  tworzâcych
  420. protokóî  z  procesorem  gîównym.   Takie dâûenie do z pozoru najprostszego
  421. rozwiâzania  jest  typowe  dla  firm  Intel i IBM, jednak w obu przypadkach
  422. koïczy  sië  ogromnymi  problemami  w  unowoczeônianiu  sprzëtu  i  pisaniu
  423. programów na takie "podresowane" urzâdzenia.
  424.   W  wiëkszoôci  wypadków  procesor musi czekaê na wykonanie operacji przez
  425. koprocesor,   zsynchronizowanie   obu   ukîadów   jest   trudnym  zadaniem.
  426. Wprowadzenie  wielozadaniowego  systemu  operacyjnego na ten procesor wiâûe
  427. sië  zawsze z duûymi problemami, gdyû wykonywanie operacji przez koprocesor
  428. polega raczej na wydawaniu zleceï niû obustronnych potwierdzeï.
  429.   Wreszcie  procesor  moûe komunikowaê sië tylko z jednym koprocesorem, bez
  430. moûliwoôci  uûycia  innego  ukîadu  niû  FPU  Intel 8087/287/387.  Procesor
  431. nowszy  nie  moûe  korzystaê  ze  starszego koprocesora, co utrudnia zmianë
  432. konfiguracji  (przykîadowo  -  w  Amidze moûemy mieê koprocesor na pîycie i
  433. îâczyê go z dowolnym procesorem doîâczonym z zewnâtrz).
  434.  
  435. Business is business
  436.   Zamiast podsumowania kilka sîów o zastosowaniu obu ukîadów.  Wprowadzenie
  437. ukîadu  I  8086  nie  wystarczyîo, aby zdobyê jego popularnoôê.  Dopiero po
  438. wprowadzeniu  systemu  operacyjnego  CP/M  ukîad  ten  zdobyî wiëkszy zbyt.
  439. Zadecydowaîo  uûywanie  w  komputerach  niezaleûnych producentów i mit kodu
  440. przenoszonego z platformy na platformë.
  441.   Procesor  I  8086 wprowadzono z myôlâ kontynuowania linii rozpoczynajâcej
  442. sië od 4004, jednak system opracowany na ten procesor przez firmë Intel nie
  443. zyskaî odpowiedniego poparcia.  Dopiero wprowadzenie komputera IBM PC, daîo
  444. jakâkolwiek  nadziejë  dla  tego ukîadu.  Zarówno procesor, jak i oparty na
  445. nim  komputer  nie  miaîy  zbyt  wielkich  zalet,  o powodzeniu zadecydowaî
  446. prestiû  dawniejszych  konstrukcji  IBM.   Stâd  teû  ten  prosty "terminal
  447. znakowy"  ma  dzisiaj  tak  duûe  powodzenie.   Szkoda  tylko,  ûe z chwilâ
  448. wprowadzenia  na  rynek  komputera  PC  firma  IBM,  aû  do  dzisiaj notuje
  449. straty...
  450.   Procesor   I   8086   nie   jest   stosowany  w  zbyt  wielu  komputerach
  451. niekompatybilnych z narzuceniami IBM.
  452.   Firma  Motorola  wprowadziîa  ukîad  MC  68000  z  myôlâ  o  nowoczesnych
  453. zastosowaniach,    stawiajâc   nacisk   na   efektywnoôê   kompilatorów   i
  454. rozszerzalnoôê.    Z   góry   zakîadano   pracë   pod   kontrolâ   systemów
  455. wielozadaniowych  oraz  opanowanie  rynku kontrolerów.  Wszystkie zaîoûenia
  456. Motoroli speîniîy sië znakomicie.
  457.   Ukîad  MC  68000  zdominowaî  rynek  wydajnych  stacji  graficznych  oraz
  458. standardy   przemysîowe.   Korzystajâ  z  niego  stacje  robocze  SUN,  HP,
  459. komputery  Amiga  i  Mac  oraz  wiëkszoôê sterowników poczâwszy od drukarek
  460. laserowych,  modemów  i  sprzëtu  pomiarowego,  na urzâdzeniach militarnych
  461. skoïczywszy.    W  tej  klasie  nie  liczâ  sië  sentymenty  przestarzaîego
  462. oprogramowania lub opracowaï sprzëtowych, liczy sië jakoôê.
  463.